﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using NIEN_LUAN.Db;
using System.Windows.Forms;

namespace NIEN_LUAN
{
    public partial class FormTimKiemNhaCungCap : Form
    {
        private DataContentDataContext db = new DataContentDataContext();
        private FormTimKiemPhieuNhap frmTimKiemPhieuNhap;
        private FormThongKePhieuNhap frmThongkephieunhap;
        private FormCongNoNhaCungCap frmCongnonhacungcap;
        private FormLapPhieuNhap frmLapphieunhap;

        public FormTimKiemNhaCungCap()
        {
            InitializeComponent();
        }

        public FormTimKiemNhaCungCap(FormTimKiemPhieuNhap frm)
        {
            InitializeComponent();
            frmTimKiemPhieuNhap = frm;
            this.btnAdd.Visible = true;
        }

        public FormTimKiemNhaCungCap(FormLapPhieuNhap frm)
        {
            InitializeComponent();
            frmLapphieunhap = frm;
            this.btnAdd.Visible = true;
            this.btnSuaNCC.Enabled = false;
            this.btnXoaNCC.Enabled = false;
        }


        public FormTimKiemNhaCungCap(FormThongKePhieuNhap frm)
        {
            InitializeComponent();
            frmThongkephieunhap = frm;
            this.btnAdd.Visible = true;
        }

        public FormTimKiemNhaCungCap(FormCongNoNhaCungCap frm)
        {
            InitializeComponent();
            frmCongnonhacungcap = frm;
            this.btnAdd.Visible = true;
        }

        public void load()
        {
            var nl = (from m in db.NHACUNGCAPs
                      select m).ToList();
            this.dataGridViewNCC.DataSource = nl;
        }

        private void btnTimNCC_Click(object sender, EventArgs e)
        {
            if (this.checkBoxTenNCC.Checked && !this.checkBoxTimkiemDC.Checked && !this.checkBoxTimkiemSDTncc.Checked)
            {
                if (string.IsNullOrEmpty(this.txtTenNCC.Text))
                {
                    MessageBox.Show("Chưa nhập tên nhà cung cấp", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                var nhacungcap = (from m in db.NHACUNGCAPs
                                 where m.TenNhaCungCap.StartsWith(this.txtTenNCC.Text)
                                 select m).ToList();
                this.nHACUNGCAPBindingSource.DataSource = nhacungcap;
                this.nHACUNGCAPBindingSource.ResetBindings(true);
                return;
            }
           
            if (!this.checkBoxTenNCC.Checked && this.checkBoxTimkiemDC.Checked && !this.checkBoxTimkiemSDTncc.Checked)
            {
                if (string.IsNullOrEmpty(this.txtTimkiemDCNCC.Text))
                {
                    MessageBox.Show("Chưa nhập địa chỉ nhà cung cấp", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                var nhacungcap = (from m in db.NHACUNGCAPs
                                 where m.DiaChi.StartsWith(this.txtTimkiemDCNCC.Text)
                                 select m).ToList();
                this.nHACUNGCAPBindingSource.DataSource = nhacungcap;
                this.nHACUNGCAPBindingSource.ResetBindings(true);
                return;
            }
            if (!this.checkBoxTenNCC.Checked && !this.checkBoxTimkiemDC.Checked && this.checkBoxTimkiemSDTncc.Checked)            
            {
                if (string.IsNullOrEmpty(this.txtTimkiemSDTNCC.Text))
                {
                    MessageBox.Show("Chưa nhập số điện thoại nhà cung cấp", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                var nhacungcap = (from m in db.NHACUNGCAPs
                                 where m.SoDienThoai == this.txtTimkiemSDTNCC.Text
                                 select m).ToList();
                this.nHACUNGCAPBindingSource.DataSource = nhacungcap;
                this.nHACUNGCAPBindingSource.ResetBindings(true);
                return;
            }
            if (this.checkBoxTenNCC.Checked && this.checkBoxTimkiemDC.Checked && !this.checkBoxTimkiemSDTncc.Checked)           
            {
                if (string.IsNullOrEmpty(this.txtTenNCC.Text))
                {
                    MessageBox.Show("Chưa nhập tên nhà cung cấp", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                if (string.IsNullOrEmpty(this.txtTimkiemDCNCC.Text))
                {
                    MessageBox.Show("Chưa nhập địa chỉ nhà cung cấp", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                var nhacungcap = (from m in db.NHACUNGCAPs
                                 where ((m.TenNhaCungCap.StartsWith(this.txtTenNCC.Text)) && (m.DiaChi.StartsWith(this.txtTimkiemSDTNCC.Text)))
                                 select m).ToList();
                this.nHACUNGCAPBindingSource.DataSource = nhacungcap;
                this.nHACUNGCAPBindingSource.ResetBindings(true);
                return;
            }
            if (this.checkBoxTenNCC.Checked && !this.checkBoxTimkiemDC.Checked && this.checkBoxTimkiemSDTncc.Checked)            
            {
                if (string.IsNullOrEmpty(this.txtTenNCC.Text))
                {
                    MessageBox.Show("Chưa nhập tên nhà cung cấp", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                if (string.IsNullOrEmpty(this.txtTimkiemSDTNCC.Text))
                {
                    MessageBox.Show("Chưa nhập số điện thoại nhà cung cấp", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                var nhacungcap = (from m in db.NHACUNGCAPs
                                 where ((m.TenNhaCungCap.StartsWith(this.txtTenNCC.Text)) && (m.SoDienThoai == this.txtTimkiemSDTNCC.Text))
                                 select m).ToList();
                this.nHACUNGCAPBindingSource.DataSource = nhacungcap;
                this.nHACUNGCAPBindingSource.ResetBindings(true);
                return;
            }

            if (!this.checkBoxTenNCC.Checked && this.checkBoxTimkiemDC.Checked && this.checkBoxTimkiemSDTncc.Checked)
            {
                if (string.IsNullOrEmpty(this.txtTimkiemDCNCC.Text))
                {
                    MessageBox.Show("Chưa nhập địa chỉ nhà cung cấp", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                if (string.IsNullOrEmpty(this.txtTimkiemSDTNCC.Text))
                {
                    MessageBox.Show("Chưa nhập số điện thoại nhà cung cấp", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                var nhacungcap = (from m in db.NHACUNGCAPs
                                 where ((m.DiaChi.StartsWith(this.txtTimkiemDCNCC.Text)) && (m.SoDienThoai == this.txtTimkiemSDTNCC.Text))
                                 select m).ToList();
                this.nHACUNGCAPBindingSource.DataSource =nhacungcap;
                this.nHACUNGCAPBindingSource.ResetBindings(true);
                return;
            }

            if (this.checkBoxTenNCC.Checked && this.checkBoxTimkiemDC.Checked && this.checkBoxTimkiemSDTncc.Checked)
            {
                if (string.IsNullOrEmpty(this.checkBoxTenNCC.Text))
                {
                    MessageBox.Show("Chưa nhập địa chỉ nhà cung cấp", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                if (string.IsNullOrEmpty(this.txtTenNCC.Text))
                {
                    MessageBox.Show("Chưa nhập số điện thoại nhà cung cấp", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                if (string.IsNullOrEmpty(this.txtTenNCC.Text))
                {
                    MessageBox.Show("Chưa nhập tên nhà cung cấp", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                var nhacungcap = (from m in db.NHACUNGCAPs
                                 where ((m.DiaChi.StartsWith(this.txtTimkiemSDTNCC.Text)) && (m.SoDienThoai == this.txtTimkiemDCNCC.Text) && (m.TenNhaCungCap.StartsWith(this.txtTenNCC.Text)))
                                 select m).ToList();
                this.nHACUNGCAPBindingSource.DataSource = nhacungcap;
                this.nHACUNGCAPBindingSource.ResetBindings(true);
                return;
            }

            if (!this.checkBoxTenNCC.Checked && !this.checkBoxTimkiemDC.Checked && !this.checkBoxTimkiemSDTncc.Checked)
            {
                var nhacungcap = (from m in db.NHACUNGCAPs
                                 select m).ToList();
                this.nHACUNGCAPBindingSource.DataSource = nhacungcap;
                this.nHACUNGCAPBindingSource.ResetBindings(true);
                return;
            }                                               
        }

        private void btnThoatNCC_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        public Db.NHACUNGCAP NhaCungCapSua = new NHACUNGCAP(); 
        private void btnSuaNCC_Click(object sender, EventArgs e)
        {
            var nhacungcap = this.nHACUNGCAPBindingSource.Current as NHACUNGCAP;
            if (nhacungcap != null)
            {
                NhaCungCapSua = nhacungcap;
                var kq = new FormChiTietNhaCungCap(NhaCungCapSua, this).ShowDialog();
                if (kq == DialogResult.OK)
                {
                    nhacungcap.DiaChi = NhaCungCapSua.DiaChi;
                    nhacungcap.TenNhaCungCap = NhaCungCapSua.TenNhaCungCap;
                    nhacungcap.SoDienThoai = NhaCungCapSua.SoDienThoai;

                    this.nHACUNGCAPBindingSource.ResetCurrentItem();
                    MessageBox.Show("Đã cập nhật dữ liệu", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }
            }    
        }

        private void FormTimKiemNhaCungCap_Load(object sender, EventArgs e)
        {
            this.dataGridViewNCC.AutoGenerateColumns = false;
            var nhacungcap = (from ncc in db.NHACUNGCAPs
                              orderby ncc.MaNhaCungCap ascending
                              select ncc
                                  ).ToList();
            this.nHACUNGCAPBindingSource.DataSource = nhacungcap;
        }

        private void btnXoaNCC_Click(object sender, EventArgs e)
        {
            var nhacungcap = this.nHACUNGCAPBindingSource.Current as NHACUNGCAP;
            if (nhacungcap != null)
            {
                var chitietnhap = (from m in db.PHIEUNHAPs
                                   where m.MaNhaCungCap == nhacungcap.MaNhaCungCap
                                   select m).Count();
                if (chitietnhap > 0)
                {
                    MessageBox.Show("Nhà cung cấp này có cung cấp hàng không thể xóa");
                    return;
                }
                var tl = MessageBox.Show("bạn có chắc chắn xóa?", "Thông Báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (tl == DialogResult.Yes)
                {
                    try
                    {
                        db.NHACUNGCAPs.DeleteOnSubmit(nhacungcap);
                        db.SubmitChanges();
                        this.nHACUNGCAPBindingSource.RemoveCurrent(); return;
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Đã có lỗi khi thực hiện thao tác này Chi tiết lỗi : " + ex.Message);
                        return;
                        // throw;
                    }
                }
            }
            else
            {

                MessageBox.Show("chọn nhà cung cấp để xóa");
            }
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            var nhacungcap = this.nHACUNGCAPBindingSource.Current as NHACUNGCAP;
            if (nhacungcap != null)
            {
                // this.frmLapChungTu.txtMaKH.Text = khachhang.MaKhachHang;
                if (frmTimKiemPhieuNhap != null)
                {
                    this.DialogResult = DialogResult.OK;
                    this.frmTimKiemPhieuNhap.comboBoxNCC.Text = nhacungcap.MaNhaCungCap;
                    this.Close();
                }

                if (frmLapphieunhap != null)
                {
                    this.DialogResult = DialogResult.OK;
                    this.frmLapphieunhap.comboBoxNCC.Text = nhacungcap.MaNhaCungCap;
                    this.Close();
                }

                if (frmThongkephieunhap != null)
                {
                    this.DialogResult = DialogResult.OK;
                    this.frmThongkephieunhap.comboBoxNCC.Text = nhacungcap.MaNhaCungCap;
                    this.Close();
                }

                if (frmCongnonhacungcap != null)
                {
                    this.DialogResult = DialogResult.OK;
                    this.frmCongnonhacungcap.comboBoxNCC.Text = nhacungcap.MaNhaCungCap;
                    this.Close();
                }
            }
        }
    }
}
